#86、定义一个类Person 和它的两个子类：Male和Female。所有的类都有一个方法“getGender”
#它可以打印“Male”为男性类，“Female”为女性类。
print('86、')
class Person(object):
    def getGender(self):
        return 'unknow'
class Male(Person):
    def getGender(self):
        return "Male"
class Female(Person):
    def getGender(self):
        return "Female"
aMale=Male()
aFemale=Female()
print(aMale.getGender())
print(aFemale.getGender())
print('==========================================================================')
print('\n')


#87、请编写一个程序，计算并打印由控制台输入的字符串中的每个字符的数量。
#示例：如果下面的字符串作为程序的输入：abcdefgab
#程序的输出应该是a,2,b,2,c,1,e,1,d,1,g,1,f,1
print('87、请输入一些英文字母：')
dic={}
s=input()
for s in s:
    dic[s]=dic.get(s,0)+1
print('\n'.join(['%s,%s'%(k,v)for k,v in dic.items()]))
print('==========================================================================')
print('\n')


#88、x=["ll","uu",'kk','hh'],y=[1,2,3,4,5,6]对两个列名进行数据对齐，一个键一个值的对齐形式
print('88、')
x=["ll","uu",'kk','hh']
y=[1,2,3,4,5,6]
for x1,y1 in zip(x,y):
    print(x1,y1)
print('==========================================================================')
print('\n')


#89、请编写一个程序，从控制台接收一个字符串，并以相反的顺序打印出来。
#示例：程序输入：rise to vote sir
#那程序的输出应该是：ris etov ot esir
print('89、请输入一句英文：')
s=input()
s=s[::-1]
print(s)
print('==========================================================================')
print('\n')


#90、请编写一个程序，从控制台接收一个字符串，并打印具有偶数索引的字符；
#示例：如果字符串作为程序的输入：H1e2l3l4o5w6o7r8l9d
#那么程序的输出应该是：Helloworld;
print('90、请输入“H1e2l3l4o5w6o7r8l9d”：')
s=input()
s=s[::2]
print(s)
print('==========================================================================')
print('\n')


#91、请写一个程序，打印[1,2,3]的所有排列。
print('91、')
import itertools
print(list(itertools.permutations([1,2,3])))
print('==========================================================================')
print('\n')


#92、写一个程序来解决一个中国谷底啊的经典难题：我们数农场里的鸡和兔子中的有35个头和
#94条腿。我们有多少只兔子和多少只鸡？
print('93、')
def solve(numheads,numlegs):
    ns='No solutions'
    for i in range(numheads+1):
        j=numheads-i
        if 2*i+4*j==numlegs:
            return i,j      #i代表鸡的数量，j代表兔子的数量
    return ns,ns
numheads=35
numlegs=94
solutions=solve(numheads,numlegs)
print(solutions)
print('==========================================================================')
print('\n')


#93、给定一个字符，用它构造一个底边长5个字符，高3个字符的等腰字符三角形。
print('93、请输入一个英文字母：')
a=input()
print("  "+a)
print(" "+a+a+a)
print(a*5)
print('==========================================================================')
print('\n')


#94、已知一个字符串为“hello_world_yoyo”，如何得到一个队列
#[“hello”，“world”，“yoyo”]?
print('94、')
test='hello_world_yoyo'
print(test.split('_'))
print('==========================================================================')
print('\n')


#95、python如何打印99乘法表？
print('95、')
i=1
while i<=9:
    j=1
    while j<=i:
        print('%d*%d=%-2d'%(i,j,i*j),end=' ')
        j+=1
    print()
    i+=1
print('==========================================================================')
print('\n')


#96、输入一个姓名，判断是否姓王。
print('96、')
def test():
    user_input=input('请输入你的姓名：')
    if user_input[0]=='王':
        return '用户姓王'
    return '用户不姓王'
print(test())
print('==========================================================================')
print('\n')


#97、统计字符串“Hello, welcome to my world.”中字母w出现的次数。
print('97、')
def test():
    message='Hello, welcome to my world.'
    num=0
    for i in message:
        if 'w' in i:
            num+=1
    return num
print(test())
print('==========================================================================')
print('\n')


#98、把列表a=[1,-6,2,-5,9,4,20,-3]中的负数数字，以绝对值显示。
def test():
    a=[1,-6,2,-5,9,4,20,-3]
    lists=[]
    for i in a:
        lists.append(abs(i))
    return lists
print(test())
print('==========================================================================')
